<?php
/**
 * Начало начал
 * 
 * @author Anton Zavidov
 * @package myLiveShop
 */
error_reporting(E_ALL);
$t=microtime(true);
header('Expires: Mon, 26 Jul 2002 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
//начинаем буферизаци
ob_start();
//подключаем обработку исключений
include_once('core/exeptions.php');
//подключаем набор функций
include_once('core/functions.php');
//устанавливаем обработчик для програмных ощибок
set_error_handler('errorHandler',E_ALL);
//режим ядра
$core_mode='base';
//загружаем основу
import('core.core');
//подключаем настройки
import('core.config');
//устанавливаем домен для сессий
ini_set('session.cookie_domain',Config::_('info_domain'));
//собираем ядро
Core::load(array(
	'core.vars+',				//глобальные переменные
	'core.event+',				//диспетчер событий
	'core.file',				//модуль работы с файлами
	'core.db.mysql',			//класс базы данных mysql
	'core.model',				//базовый класс модели
	'core.controller',			//базовый класс контроллера
	'core.element',				//базовый класс сушьностей
	'core.session',				//класс сессий хранимых в базе
	'core.router+',				//класс обработки урла
	'core.request',				//обработка запросов
    'core.requestlocal',		//обработка запросов при пакетной обработке
	'core.t'					//локализация
));
//ссылка на БД
$db=Core::getDB();
//$db->connect();

//определяем язык
Core::setLang();

//предварительные сервистные функции
Core::preService();

//определяем тип вьюхи
Vars::_(Router::VIEW_TYPE,Config::_('default_view_type'));

//имя вьюхи переданное в роутер
$view=Vars::_(Router::VIEW);
//запускаем контроллер переданный в роутер
$controller=Core::getController(Vars::_(Router::CONTROLLER));
if(is_callable(array($controller,$view))){
	$controller->$view();
}else{
	new CoreExeption('Невозможно вызвать метод '.$view.' контроллера '.Vars::_(Router::CONTROLLER),E_ERROR,__FILE__,__LINE__);
}


//закрываем базу
$db->close();

//переменные
Vars::debug();

//заканчиваем буферизацию
ob_flush();
echo '<h5>Сообщения</h5>';
pr(Core::messages());
//завершающие сервистные функции
Core::pastService();
pr($_SESSION);
//закончиваем сессию
session_commit();
//смотрим сколько времени занял весь код
echo '<h5>Время выполнения скрипта</h5>';
echo number_format(microtime(true)-$t,4).'c';
//показываем ошибки
echo '<h5>Лог</h5>';
echo CoreExeption::showErrorLog();
//загруженные файлы
echo '<h5>Загруженные файлы</h5>';
echo showImportedFiles();
ec(number_format(memory_get_usage()/(1024*1024),3)." Mb",'memory >');
ec(number_format(memory_get_peak_usage()/(1024*1024),3).' Mb','max memory >');